import httpRequest from '@/api/http.js'

export default {
  state: {
    roles: [], // 角色
    routes: [],
  },
  mutations: {
    SETROLES: (state, d) => {
      state.roles = d
    },
    LOGINOUT: (state) => {
      state.roles = []
    },
    ROUTES: (state, res) => {
      state.routes = res
    }
  },
  actions: {
    async userinfo({ commit }) {
      // 这里如果使用promise可以在路由拦截器直接获取到resolve的值，也可以用await async阻塞这个api，然后用store获取值，也发现async和promise的一个不同之处，promise可以返回值，这里用promise应该好些，拦截路由代码更少、结构更清晰。
      // return new Promise((resolve, reject) => {
      await httpRequest.userInfo().then(res => {
        const data = res.data.roles
        commit('SETROLES', data)
        // resolve(data)
      })

      //   .catch(() => {
      //     reject()
      //   })
      // })
    },
  },
  getters: {
    roles: state => state.roles // 获取角色
  }
}